import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class Tierra here.
 * 
 * @author (Fco Fernando Gosch Acosta) 
 * @version (1.0)
 */
public class Tierra extends Gravitacion
{
    protected int recursos;
    protected SimpleTimer gravitacion;
    protected static final int lapsoGravitacion = 20;     
    
    /**
     * Tierra Constructor de la clase tierra para iniciar sus valores
     *
     */
    public Tierra()
    {
        recursos = 500;
        gravitacion = new SimpleTimer();
        gravitacion.mark();
       
    }  
          
    /**
     * Act - do whatever the Tierra wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act() 
    {
        Pulido p = (Pulido) getOneIntersectingObject(Pulido.class);
        Grande g = (Grande) getOneIntersectingObject(Grande.class);
        Metal m = (Metal) getOneIntersectingObject(Metal.class);
        Pequenio pe = (Pequenio) getOneIntersectingObject(Pequenio.class);
        
        if(p!=null){
            chocaP(p);
            ((Espacio) getWorld()).bajaRecursos(p.dameDanio());
            ((Espacio) getWorld()).bajaEnemigo();
        }
        
        else if(g!=null){
            chocaG(g);
            ((Espacio) getWorld()).bajaRecursos(g.dameDanio());
            ((Espacio) getWorld()).bajaEnemigo();
        }
        
        else if(m!=null){
            chocaM(m);
            ((Espacio) getWorld()).bajaRecursos(m.dameDanio());
            ((Espacio) getWorld()).bajaEnemigo();
        }
        
        else if(pe!=null){
            chocaPe(pe);
            ((Espacio) getWorld()).bajaRecursos(pe.dameDanio());
            ((Espacio) getWorld()).bajaEnemigo();
        }
        if(gravitacion.millisElapsed() > lapsoGravitacion )
        {
           gravita(2,1);
           gravitacion.mark();
        }
             
    }    
}
